using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Resources;
using System.Runtime.Serialization;
using System.Text;
using System.Threading.Tasks;

namespace KPIS.GERP.Models.HRM
{
	[Table("hrm_ps_command_add")]
    public class PsCommandAdd
    {
		[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
		[DataMember, Column("cmd_add_seq"),Display(Name = "CmdAddId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public int CmdAddId { get; set; }

		[ForeignKey("Cmd")]
		[DataMember, Column("cmd_seq"),Display(Name = "CmdId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public int CmdId { get; set; }

		[DataMember, Column("start_date"),Display(Name = "StartDate", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<System.DateTime> StartDate { get; set; }

		[ForeignKey("TmpEmp")]
		[DataMember, Column("tmp_emp_seq"),Display(Name = "TmpEmpId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> TmpEmpId { get; set; }

		[ForeignKey("Emp")]
		[DataMember, Column("emp_seq"),Display(Name = "EmpId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> EmpId { get; set; }

		[ForeignKey("Pos")]
		[DataMember, Column("pos_seq"),Display(Name = "PosId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> PosId { get; set; }

		[DataMember, Column("pos_ref_no"),Display(Name = "PosRefNo", ResourceType = typeof(Resources.PsCommandAddResource))]
        public string PosRefNo { get; set; }

		[DataMember, Column("pos_name"),Display(Name = "PosName", ResourceType = typeof(Resources.PsCommandAddResource))]
        public string PosName { get; set; }

		[ForeignKey("Class")]
		[DataMember, Column("class_seq"),Display(Name = "ClassId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> ClassId { get; set; }

		[ForeignKey("ExecPos")]
		[DataMember, Column("exec_pos_seq"),Display(Name = "ExecPosId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> ExecPosId { get; set; }

		[ForeignKey("JobSite")]
		[DataMember, Column("job_site_seq"),Display(Name = "JobSiteId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> JobSiteId { get; set; }

		[DataMember, Column("job_site_name"),Display(Name = "JobSiteName", ResourceType = typeof(Resources.PsCommandAddResource))]
        public string JobSiteName { get; set; }

		[DataMember, Column("salary"),Display(Name = "Salary", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<double> Salary { get; set; }

		[DataMember, Column("salary_extra"),Display(Name = "SalaryExtra", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<double> SalaryExtra { get; set; }

		[ForeignKey("EduHis")]
		[DataMember, Column("edu_his_seq"),Display(Name = "EduHisId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> EduHisId { get; set; }

		[DataMember, Column("ent_no"),Display(Name = "EntNo", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> EntNo { get; set; }

		[DataMember, Column("ent_pos_name"),Display(Name = "EntPosName", ResourceType = typeof(Resources.PsCommandAddResource))]
        public string EntPosName { get; set; }

		[ForeignKey("EntPosType")]
		[DataMember, Column("ent_pos_type_seq"),Display(Name = "EntPosTypeId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> EntPosTypeId { get; set; }

		[ForeignKey("EntClass")]
		[DataMember, Column("ent_class_seq"),Display(Name = "EntClassId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> EntClassId { get; set; }

		[DataMember, Column("ent_job_site_name"),Display(Name = "EntJobSiteName", ResourceType = typeof(Resources.PsCommandAddResource))]
        public string EntJobSiteName { get; set; }

		[DataMember, Column("ent_date"),Display(Name = "EntDate", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<System.DateTime> EntDate { get; set; }

		[DataMember, Column("old_pos_name"),Display(Name = "OldPosName", ResourceType = typeof(Resources.PsCommandAddResource))]
        public string OldPosName { get; set; }

		[ForeignKey("OldPosType")]
		[DataMember, Column("old_pos_type_seq"),Display(Name = "OldPosTypeId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> OldPosTypeId { get; set; }

		[ForeignKey("OldClass")]
		[DataMember, Column("old_class_seq"),Display(Name = "OldClassId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> OldClassId { get; set; }

		[DataMember, Column("old_job_site_name"),Display(Name = "OldJobSiteName", ResourceType = typeof(Resources.PsCommandAddResource))]
        public string OldJobSiteName { get; set; }

		[ForeignKey("OldExecPos")]
		[DataMember, Column("old_exec_pos_seq"),Display(Name = "OldExecPosId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> OldExecPosId { get; set; }

		[DataMember, Column("old_salary"),Display(Name = "OldSalary", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<double> OldSalary { get; set; }

		[ForeignKey("Move")]
		[DataMember, Column("move_seq"),Display(Name = "MoveId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> MoveId { get; set; }

		[ForeignKey("TmpEdu")]
		[DataMember, Column("tmp_edu_seq"),Display(Name = "TmpEduId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> TmpEduId { get; set; }

		[ForeignKey("PosType")]
		[DataMember, Column("pos_type_seq"),Display(Name = "PosTypeId", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> PosTypeId { get; set; }

		[DataMember, Column("remarks"),Display(Name = "Remarks", ResourceType = typeof(Resources.PsCommandAddResource))]
        public string Remarks { get; set; }

		[DataMember, Column("remarks2"),Display(Name = "Remarks2", ResourceType = typeof(Resources.PsCommandAddResource))]
        public string Remarks2 { get; set; }

		[DataMember, Column("record_status"),Display(Name = "RecordStatus", ResourceType = typeof(Resources.PsCommandAddResource))]
        public string RecordStatus { get; set; }

		[DataMember, Column("created_by"),Display(Name = "CreatedBy", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> CreatedBy { get; set; }

		[DataMember, Column("created_when"),Display(Name = "CreatedWhen", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<System.DateTime> CreatedWhen { get; set; }

		[DataMember, Column("updated_by"),Display(Name = "UpdatedBy", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<int> UpdatedBy { get; set; }

		[DataMember, Column("updated_when"),Display(Name = "UpdatedWhen", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<System.DateTime> UpdatedWhen { get; set; }

		[DataMember, Column("curr_class_date"),Display(Name = "CurrClassDate", ResourceType = typeof(Resources.PsCommandAddResource))]
        public Nullable<System.DateTime> CurrClassDate { get; set; }
    

		[DataMember, Display(Name = "HrmMpClasses", ResourceType = typeof(Resources.PsCommandAddResource))]
        public virtual HRM.MpClass HrmMpClasses { get; set; }

		[DataMember, Display(Name = "HrmMpJobSites", ResourceType = typeof(Resources.PsCommandAddResource))]
        public virtual HRM.JobSite HrmMpJobSites { get; set; }

		[DataMember, Display(Name = "HrmMpPositions", ResourceType = typeof(Resources.PsCommandAddResource))]
        public virtual HRM.Position HrmMpPositions { get; set; }

		[DataMember, Display(Name = "HrmPsEmployees", ResourceType = typeof(Resources.PsCommandAddResource))]
        public virtual HRM.Employee HrmPsEmployees { get; set; }

		public virtual PsCommand Cmd { get; set; }

		public virtual TmpEmployee TmpEmp { get; set; }

		public virtual Employee Emp { get; set; }

		public virtual Position Pos { get; set; }

		public virtual MpClass Class { get; set; }

		public virtual ExecutivePosition ExecPos { get; set; }

		public virtual HRM.JobSite JobSite { get; set; }

		public virtual PsEduHistory EduHis { get; set; }

		public virtual MasPositionType EntPosType { get; set; }

		public virtual MpClass EntClass { get; set; }

		public virtual MasPositionType OldPosType { get; set; }

		public virtual MpClass OldClass { get; set; }

		public virtual ExecutivePosition OldExecPos { get; set; }

		public virtual EsMoveRequest Move { get; set; }

		public virtual PsEmpEducation TmpEdu { get; set; }

		public virtual MasPositionType PosType { get; set; }

    }
}